/*LICENSE_BEGIN
 * ******************************************************************
 * Copyright 2006 by the Dainamite Robocup-Team at the
 * DAI-Labor, TU-Berlin (www.dai-labor.de)
 * 
 * Members of Dainamite are:
 * Holger Endert
 * Robert Wetzker
 * Thomas Karbe
 * Axel Heßler
 * Philippe Bütter
 * Felix Brossmann
 * 
 * Licensed under the GNU GPL (General Public License) Free Software 
 * License, Version 2. You may use this file only in compliance with 
 * the License. You may obtain a copy of the License at:
 * 
 * http://www.fsf.org/licensing/licenses/gpl.txt
 * ******************************************************************
LICENSE_END*/
package robocup.component.coach;

import robocup.component.infotypes.AuralInfo;
import robocup.component.infotypes.CoachVisualInfo;
import robocup.component.infotypes.PlayerTypesInfo;

/**
 * This interface should be implemented by all classes of the
 * coach-package, taht are interested in receiving information-objects
 * from the server. This is the <code>OLCoachTactic</code> and its
 * components (e.g. <code>PlayerTypeAnalyzer</code>), which have a subscription
 * in the list of receivers of the tactic. 
 */
public interface InfoReceiver {

	/**
	 * Called at the arrival of a new player-type.
	 * 
	 * @param info - usually the latest perceived player-type-information
	 */
	public void receivedPlayerTypeInf(PlayerTypesInfo info);

	/**
	 * Called at the arrival of a new AuralInfo.
	 * 
	 * @param info - the latest aural-info
	 */
	public void receivedAuralInfo(AuralInfo info);

	/**
	 * Called at the arrival of a new VisualInfo.
	 * 
	 * @param info - the latest coach-visual-info.
	 */
	public void receivedVisualInfo(CoachVisualInfo info);

}
